From 37f9f491d29620898bbfc146ab1bd7e7c8c4596d Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Sat, 13 Nov 2010 21:19:41 +0100 Subject: [PATCH] Make testgtk load CSS for custom styling. --- tests/Makefile.am | 4 +- tests/testgtk.c | 46 +++++---- tests/testgtk.css | 33 +++++++ tests/testgtk2.css | 9 ++ tests/testgtkrc | 228 --------------------------------------------- tests/testgtkrc2 | 21 ----- 6 files changed, 73 insertions(+), 268 deletions(-) create mode 100644 tests/testgtk.css create mode 100644 tests/testgtk2.css delete mode 100644 tests/testgtkrc delete mode 100644 tests/testgtkrc2 diff --git a/tests/Makefile.am b/tests/Makefile.am index a690082b52..75d68170bc 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -396,8 +396,8 @@ testswitch_SOURCES = testswitch.c EXTRA_DIST += \ prop-editor.h \ testgtk.1 \ - testgtkrc \ - testgtkrc2 \ + testgtk.css \ + testgtk2.css \ 3DRings.xpm \ FilesQueue.xpm \ Modeller.xpm \ diff --git a/tests/testgtk.c b/tests/testgtk.c index 7e0a7e7cd5..abfd127a1c 100644 --- a/tests/testgtk.c +++ b/tests/testgtk.c @@ -9985,7 +9985,7 @@ create_main_window (void) int i; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_widget_set_name (window, "main window"); + gtk_widget_set_name (window, "main_window"); gtk_window_move (GTK_WINDOW (window), 50, 20); gtk_window_set_default_size (GTK_WINDOW (window), -1, 400); @@ -10188,6 +10188,9 @@ usage (void) int main (int argc, char *argv[]) { + GtkCssProvider *provider, *memory_provider; + GdkDisplay *display; + GdkScreen *screen; GtkBindingSet *binding_set; int i; gboolean done_benchmarks = FALSE; @@ -10196,19 +10199,28 @@ main (int argc, char *argv[]) test_init (); + g_set_application_name ("GTK+ Test Program"); + + gtk_init (&argc, &argv); + + provider = gtk_css_provider_new (); + /* Check to see if we are being run from the correct * directory. */ - if (file_exists ("testgtkrc")) - gtk_rc_add_default_file ("testgtkrc"); + if (file_exists ("testgtk.css")) + gtk_css_provider_load_from_path (provider, "testgtk.css", NULL); else if (file_exists ("tests/testgtkrc")) - gtk_rc_add_default_file ("tests/testgtkrc"); + gtk_css_provider_load_from_path (provider, "tests/testgtk.css", NULL); else - g_warning ("Couldn't find file \"testgtkrc\"."); + g_warning ("Couldn't find file \"testgtk.css\"."); - g_set_application_name ("GTK+ Test Program"); + display = gdk_display_get_default (); + screen = gdk_display_get_default_screen (display); - gtk_init (&argc, &argv); + gtk_style_context_add_provider_for_screen (screen, GTK_STYLE_PROVIDER (provider), + GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + g_object_unref (provider); gtk_accelerator_set_default_mod_mask (GDK_SHIFT_MASK | GDK_CONTROL_MASK | @@ -10268,17 +10280,17 @@ main (int argc, char *argv[]) "debug_msg", 1, G_TYPE_STRING, "GtkWidgetClass 9 test"); - - /* We use gtk_rc_parse_string() here so we can make sure it works across theme - * changes - */ - gtk_rc_parse_string ("style \"testgtk-version-label\" { " - " fg[NORMAL] = \"#ff0000\"\n" - " font = \"Sans 18\"\n" - "}\n" - "widget \"*.testgtk-version-label\" style \"testgtk-version-label\""); - + memory_provider = gtk_css_provider_new (); + gtk_css_provider_load_from_data (memory_provider, + "#testgtk-version-label {\n" + " color: #f00;\n" + " font: Sans 18;\n" + "}", + -1, NULL); + gtk_style_context_add_provider_for_screen (screen, GTK_STYLE_PROVIDER (memory_provider), + GTK_STYLE_PROVIDER_PRIORITY_APPLICATION + 1); + create_main_window (); gtk_main (); diff --git a/tests/testgtk.css b/tests/testgtk.css new file mode 100644 index 0000000000..9af02572c2 --- /dev/null +++ b/tests/testgtk.css @@ -0,0 +1,33 @@ +/* testgtk2.css sets all the buttons in the main window to blue by default */ +@import url(testgtk2.css); + +* { + -GtkButton-child-displacement-x: 1; + -GtkButton-child-displacement-y: 1; + + -GtkToolbar-space-size: 10; + -GtkToolbar-space-style: line; + -GtkToolbar-button-relief: none; + -GtkButtonBox-child-min-width: 0; + -GtkButtonBox-child-min-height: 0; + -GtkArrow-arrow-scaling: 1.0; + -GtkEntry-invisible-char: 10046; + + font: Sans 12; + + -Gtest-foo: 47; + -Gtest-bar: 47; +} + +GtkLabel:selected { + background-color: gray; +} + +GtkLabel:prelight { + background-color: mix (#a0a0a0, rgb (75%, 200, 0%), 0.9); +} + +/* override testgtk2, introduce the green color in the button list */ +#main_window GtkScrolledWindow GtkButton:prelight { + background-color: rgb (0%, 75%, 0); +} diff --git a/tests/testgtk2.css b/tests/testgtk2.css new file mode 100644 index 0000000000..a51ec2a100 --- /dev/null +++ b/tests/testgtk2.css @@ -0,0 +1,9 @@ +/* this file gets included from testgtk.css */ + +#main_window GtkButton { + font: Monospace 10; +} + +#main_window GtkButton:hover { + background-color: rgba(0%, 0%, 75%, 0.1); +} diff --git a/tests/testgtkrc b/tests/testgtkrc deleted file mode 100644 index 990a322492..0000000000 --- a/tests/testgtkrc +++ /dev/null @@ -1,228 +0,0 @@ -# pixmap_path ":::..." -# -# include "rc-file" -# -# style [= ] -# { -#